.lpt
.sp+ 25
.tl Disk Block Read/Write/Modify
.sp+ 2
.tl by
.sp+ 2
.tl Roger L. Soles
.sp+ 2
.tl Georgia Institute of Technology
.tl Box 36177
.tl Atlanta, GA  30332
.pg
.pn 1
.he 'Diskread'  '  ^ '
.fo ' ' - # - ' '
.pp
Disk Block Read/Write/Modify (afterwards referred to
as "DISKREAD") is a system utility program designed to allow
the knowledgable user a means through which he can read
information from disk, modify that information, and place
it back onto the disk.  It's primary design purpose is to
allow the user to make quick disk patches, either in his
system files, or any other file. (Basically, a very smart 
DUMP facility with dynamic disk and RAM  updating capability! - F. Monaco).
.sp+ 2
.tl WARNING!  
.pp
This program can totaly obliterate the information on
the disk (and RAM), and therefore it must be considered as dangerous
to the unfamiliar user - please acquaint yourself with
it's operation before proceeding to utilize it.
.pp
The screen consists of several distinct fields:
.pp
1)  The upper part of the screen will have a field 
indicating the current block number and the current unit 
(or volume) number in both decimal and hex, as a rule 
quantities that "DISKREAD" displays will always be in hex.
Between these is an indicator, either HEX or ASCII, this 
refers to the mode in which the data from the disk block is 
to be displayed.
.pp
2)  A command prompt line:  all commands 
and user input quantities will be entered here. When the cursor 
is here, "DISKREAD" is waiting for a user input.
.pp
3)  The disk block buffer area.  This area is bounded 
by a row and a column of numbers, the actual address of any 
byte in the buffer is the logical sum of the two 
quantities, and thus a little knowledge about hexidecimal 
addition is needed to utilize the displayed information 
efficiently.  The contents of the buffer are displayed in 
the current mode. In ASCII mode, only legal ASCII 
characters are displayed; that is ' '..'}'; all other ASCII 
codes are displayed as blanks.
.pp
The commands of "DISKREAD" are:
.sp+ 2
.tl 1) Set ASCII display mode : 'a'
.pp
This command will immediately display the contents of 
the disk block buffer in ASCII and set the mode indicator 
to show this.
.sp+ 2
.tl 2)  Set HEXIDECIMAL display mode : 'h'
.pp
This command will immediately display the contents of 
the disk block buffer in hex and set the mode indicator to 
show this.
.sp+ 2
.tl  3)  READ a disk block : 'r'
.pp
This command will cause "DISKREAD" to read in the disk 
block specified by the current blocknumber from the volume 
specified in the current unitnumber.  If the I/O process is 
not complete, "DISKREAD" alerts the user and displays an 
error message, hit RETURN to continue.
.sp+ 2
.tl 4)  WRITE the buffer to disk : 'w'
.pp
This command will cause "DISKREAD" to write out the 
contents of the buffer to the block specified by the 
current block number on the volume specified by the current 
unit number.  Before the process is completed, verification 
from the user is requested, typing anything except 'y' or 
'Y' will abort the process.
.sp+ 2
.tl WARNING!  
.pp
This is the only dangerous command in "DISKREAD", once
a buffer has been written to disk, the information that
was prevously in the block on the disk is lost!
.pp
If the I/O process is not complete, "DISKREAD" alerts 
the user and displays an error message, hit RETURN to 
continue.
.sp+ 2
.tl 5) INCREMENT disk block number : '+'
.pp
This command will increment the current blocknumber by 
one each time it is pressed.  If the blocknumber exceeds 
the MAXBLOCKS on the disk, the number wraps around to zero. 
For convenience the ';' may also be used so that the user 
does not have to hit the shift key.
.sp+ 2
.tl 6) DECREMENT disk block number : '-'
.pp
This command will decrement the current blocknumber by 
one each time it is pressed. If the blocknumber goes below 
zero, then number wraps around to the MAXBLOCKS.  For 
convenience, if the keyboard is shift locked, the '=' may 
also be used.
.sp+ 2
.tl 7) Set the BLOCK NUMBER : 'b'
.pp
This command allows the user to enter the absolute 
block address directly in either hexidecimal or decimal, 
default is decimal, but a '$' anywhere in the input field 
will cause the number to be processed as a hex number (this 
is true of all numeric input). Special Note: users with 
mini-floppies or hard disks will have to change the constant in the 
beginning of "DISKREAD" to reflect the correct number of blocks!
.sp+ 2
.tl 8) Set the UNIT NUMBER : 'u'
.pp
This command allows the user to enter the volume 
number on which further operations are to take place, if 
the number entered is not a vailide block device then the 
default value of four is substituted - no error message is 
given!
.sp+ 2
.tl 9) CHANGE buffer byte by byte : 'c'
.pp
This command allows the user to change the buffer 
contents byte by byte.  The user is first ask for a 
starting address at which the changes are to begin, then he 
enter each change.  The displayed numbers are the current 
address, and the value of the buffer at that address.  To 
terminate the change mode, simply type return with no other 
entry.
.sp+ 2
.tl 10) STRING CHANGES : 's'
.pp
This command allows the user to chage the buffer 
contents to values which are equivalent to an input string.
The user is ask to supply a starting address for the string 
and the string, the change takes up as many bytes as are 
needed for the string, trailing blanks are significant!
.sp+ 2
.tl 11) MEMORY UPDATE : 'm'
.pp
This command allows the user to change large amounts 
of the buffer with a single command.  The starting address, 
the ending address, and the value to update the buffer to 
must be supplied when requested, if the starting address is 
larger than the ending addres the proccess is aborted.
.sp+ 2
.tl 12) QUIT : 'q'
.pp
This command terminates "DISKREAD", the buffer is not 
saved automatically!
.sp+ 2
.tl Some General Suggestions
.pp
Numeric inputs may 
be either hex or decimal, generally error messages are not 
given, "DISKREAD" assumes the user is very familar with this 
program, and that he simply made a typing error, any 
quantity may be corrected before the return key is hit by 
simply back spacing, and either upper of lower case 
characters can be used for commands and hex digits.
.sp+ 2
.ne 10
.ce Please send comments and suggestions to:
.sp+ 2
.ce Roger L. Soles
.ce Georgia Institute of Technology
.ce Atlanta, GA  30332
.sp+ 2
.sp+ 2
.tl NOTICE:
.sp+ 2
.pp
This program is for free distribution ONLY, and the
copyright notice and author name may not be removed!


 
